<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    // let、const(声明变量)
    // let、const: 没有变量提升，必须先声明后使用
    // let、const: 同一作用域不能重复声明
    // let、const: 有块级作用域


    for(var i = 0; i < 5; i++) {
      (function(j) {
        setTimeout(() => {
          console.log(j)
        }, 1000)
      })(i)
    }

    for(let i = 0; i < 5; i++) {
      setTimeout(() => {
        console.log(j)
      }, 1000)
    }

    // console.log(i)





    // let a = 111
    // if (true) {
    //   // 块级作用域
    //   let a = 'AAAA'
    //   console.log(a)
    // }
    // console.log(a)



    // var a = 100
    // {
    //   // 块级作用域
    //   var a = 'aaaa'
    //   console.log(a)
    // }
    // console.log(a)
    





    // let a = 100
    // function fn() {
    //   // 暂时性死区
    //   console.log(a)
    //   let a = 'aaaaa'
    //   console.log(a)
    // }
    // fn()












  </script>
</body>
</html>